OpenSearch Serverlessの制約事項について確認してみた
OpenSearch Service と OpenSearch Serverlessを比べてみた
DA事業本部の横山です。
AWS re:Invent 2022にて、Amazon OpenSearch ServerlessがPublic Previewとして発表されました。 概要及び構築手順については以下に記載があります。
Preview: Amazon OpenSearch Serverless – Run Search and Analytics Workloads without Managing Clusters
ドキュメントは以下になります。
Amazon OpenSearch Serverless (preview)
今回は、ドキュメント内容を確認しながらOpenSearch ServerlessについてOpenSearch Serviceと比べてどのような制約事項があるのかを確認します。
※プレビューリリースのサービスのため、サービス内容やドキュメント内容が変更になる可能性があります。実際に利用される際はドキュメントをご確認ください。
構築手順を実施して確認した内容については、下記の記事をご参照ください。
Amazon OpenSearch Serverlessのコレクションを作成してみた #reinvent
制約事項
OpenSearch Serverlessにおいて。いくつかの制約事項があるようです。いくつか気になる点を抜粋します。詳細については、以下のドキュメントをご参照ください。
Limitations - What is Amazon OpenSearch Serverless?
- 一部のOpenSearch APIの操作は、サポートされていません。
- 一部のOpenSearch プラグインは、サポートされていません。
- マネージドOpenSearch ServiceドメインからOpenSearch Serverlessのコレクションにデータを自動的に移行する方法は、今のところありません。ドメインからコレクションにデータを再インデックスする必要があります。
- コレクションへのクロスアカウントアクセスはサポートされていません。暗号化ポリシーやデータアクセスポリシーに、他のアカウントのコレクションを含めることはできません。
- OpenSearch Serverless コレクションのスナップショットを取得または復元することはできません。
- クロスリージョンでの検索とレプリケーションはサポートされていません。
- インデックスの更新間隔は、リクエストの大きさによって10秒から30秒になる場合があります。
一部のAPI操作やプラグインについてはサポートされていないようなので本記事の後段で確認します。 クロスリージョンやクロスアカウントでのアクセスはサポートされておらず、現段階ではスナップショットの取得や復元がサポートされていないようです。プロダクトで利用する際には必要となりそうな部分なのでGA時にサポートされていることを期待しましょう。
OpenSearch ServiceとOpenSearch Serverlessの比較
OpenSearch ServiceとOpenSearch Serverlessとの比較についても記載があります。いくつか気になる点を抜粋します。詳細については、以下のドキュメントをご参照ください。
Comparing OpenSearch Service and OpenSearch Serverless - What is Amazon OpenSearch Serverless?
特徴 | OpenSearch Service | OpenSearch Serverless |
---|---|---|
サポートされている OpenSearch 操作 | すべての OpenSearch API 操作のサブセットをサポート | OpenSearch サーバーレスは、OpenSearch API 操作の異なるサブセットをサポート |
ダッシュボードへのサインイン | ユーザー名とパスワードでサインイン | アクセスキーとシークレットキーを使用してサインイン |
OpenSearch のバージョンアップ | 手動でドメインをアップグレード。ドメインがアップグレード要件を満たしていること、および重大な変更に対処していることを確認する責任がある。 | コレクションを新しい OpenSearch バージョンに自動的にアップグレードする。新しいバージョンが利用可能になるとすぐにアップグレードが行われるとは限らない。 |
前段の制約事項でも触れましたが、OpenSearch ServerlessではすべてのOpenSearch APIが利用できるわけではないようです。
また、OpenSearch Dashboardへのサインイン方法が、アクセスキーとシークレットキーのみとなっています。
OpenSearch ServiceではCognitoによる認証とOpenSearch Serviceの内部データベースが選択できたはずなので利用シーンによっては制限となる場合がありそうです。
OpenSearch Serverlessのバージョンアップについては自動的に行われる模様です。便利ではありますがタイミングもすぐではないとあるため破壊的変更への対応が行われた際にどう追従するのか気になりますね。例えばOpenSearch 3.0から適用される破壊的変更としては用語の変更などがあります。
例:GET _cat/master
-> GET _cat/cluster_manager
OpenSearch Serverlessでサポートされている OpenSearch API
制約事項で触れられていたサポートされているOpenSearch APIについて確認しましょう。詳細については、以下のドキュメントをご参照ください。
Supported operations and plugins in Amazon OpenSearch Serverless
OpenSearch ServiceのAPI操作についての記載は以下です。
Supported operations in Amazon OpenSearch Service
基本的な操作はOpenSearch Serverlessにおいても行えることが記載されていますが、以下のような違いがありました。
/_cluster/XXX 関連 /_nodes
Serverlessになったことによりアーキテクチャが変更され、OpenSearch Serverlessに上記のAPIは含まれていません。
/_plugins/_asynchronous_search /_plugins/_alerting /_plugins/_anomaly_detection /_plugins/_ism /_plugins/_ml /_plugins/_ppl /_plugins/_security /_plugins/_sql
後段でも記載しますが、一部のプラグインはサポートされていないため、OpenSearch Serverlessに上記のAPIは含まれていません。
/_update_by_query /_delete_by_query
クエリを用いて登録済みのドキュメントを一括で更新/削除するAPIですが、OpenSearch Serverlessに上記のAPIは含まれていません。
POST {index}/_create/{id} (for search collection types only) POST {index}/_update/{id} (for search collection types only) PUT {index}/_create/{id} (for search collection types only) PUT {index}/_doc/{id} (for search collection types only) DELETE {index}/_doc/{id} (for search collection types only)
インデックス名とドキュメントIDを用いた登録/更新/削除操作については、Collection TypeがSearchのものだけサポートされる模様です。
時系列データを扱うTime seriesでは、上記の操作が行えないことは注意が必要となるかもしれません。Collection Typeについては以下の記事を参照してください。
Public Preview中のAmazon OpenSearch Serverlessの仕組みやアーキテクチャを確認してみた #reinvent
OpenSearch Serverlessでサポートされている OpenSearch プラグイン
制約事項で触れられていたサポートされているプラグインについて確認しましょう。詳細については、以下のドキュメントをご参照ください。
Supported OpenSearch plugins - Supported operations and plugins in Amazon OpenSearch Serverless
OpenSearch Serviceの対応プラグインについての記載は以下です。
エンジンバージョンに応じたプラグイン - OpenSearch Service
- Japanese (kuromoji) Analysis
日本語解析プラグインが、サポートされているのはうれしいですね。各言語の解析プラグインは多くのものがサポートされていましたが、ベトナム語やタイ語のプラグインは含まれていないようでした。
- OpenSearch のアラート設定
- OpenSearch SQL
- OpenSearch のセキュリティ
- OpenSearch のインデックス状態管理
- OpenSearch k-NN
- OpenSearch の異常検出
- OpenSearch の非同期検索
- OpenSearch クラスター間レプリケーション
- OpenSearch の観測性
上記の機能については、OpenSearch Serverlessのドキュメント側に記載はありませんでした。サインインにユーザー名とパスワードが使えなかったのはSecurity プラグインが使えないためだったようです。利用している場合は注意が必要となりそうです。
- ML Commons
利用したことはないですが、機械学習機能用のプラグインはおそらくML用ノードをたてて利用する前提の機能となるため、ユーザがノードを管理することができないOpenSearch Serverlessでは現時点では利用できないのでしょう。
おわりに
OpenSearch Serviceからアーキテクチャを変更したことによる制約事項が多く見受けられました。OpenSearch Serverlessへの移行を検討している方は、自身のユースケースに当てはまるか確認しておくとよいでしょう。
以上になります。この記事がどなたかの助けになれば幸いです。